import type { UserInfoType, UserListItemType } from './user'
import type { ProjectCompType } from './competition'
export interface ProjectBasicInfoType { // 项目的基本信息
  name: string, // 项目名称
  avatarUrl: string, // 团队头像
  tags: string, // 标签, 空格隔开
  intro: string, // 描述

  compId?: number | null, // 比赛id
  compName?: string, // 比赛名称
  awardLevel?: number | null, // 获奖等级
  awardTime?: string, // 获奖时间
  awardProveUrl?: string, // 获奖证明

  courseType?: number | null, // 课程类型
  courseId?: number | null, // 课程id
  courseName?: string, // 课程名
}
export interface CompProjectType extends ProjectBasicInfoType {
  id: number, // 项目id
  collect: number, // 收藏量
  read: number, // 阅读量
  passed: boolean, // 是否通过
  creatorUser: UserInfoType, // 创建的用户
  competition: ProjectCompType,
  members: ProjectMemberType[]
}
export interface ProjectUploadFileType { // 附件上传时的类型
  id: number,
  raw?: File, // 本地文件
  name: string, // 文件名
  suffix?: string, // 后缀
  size: string, // size描述
  typeId: number, // FILE_CLASSIFIES的value, 默认选中的附件分类
  fileType: number, // FILE_TYPES里的value
  progress: number, // 上传进度条
  status: number, // 0 待上传，1 上传中，2上传完成，3上传失败
  price: number, // 初始价格
  passed: boolean, // 是否通过
}
export interface ProjectFileType extends ProjectUploadFileType {
  discount: number, // 折扣
  download: number, // 下载次数
  filename: string, // cos路径
  previewUrl: string, // 预览url
  projectId: number, // 项目的id
  score: number, // 评分
  scoreCount: number, // 评分数量
}
export interface ProjectMemberType { // 项目成员
  job: string,
  editable: boolean,
  rank: number,
  memberUser: UserListItemType
}

export type ProjectType = 'competition' | 'courseDesign' // 项目类型

export interface briefProjectType {
  id: number,

  name: string, // 项目名称
  avatarUrl: string, // 团队头像
  tags: string, // 标签, 空格隔开
  intro: string, // 描述

  compId: number | null, // 比赛id
  compName: string, // 比赛名称
  awardLevel: number | null, // 获奖等级
  awardTime: string, // 获奖时间
  awardProveUrl: string, // 获奖证明

  courseType: number | null, // 课程类型
  courseId: number | null, // 课程id
  courseName: string, // 课程名

  collect: number, // 收藏值
  read: number, // 阅读量
  passed: boolean, // 是否通过审核
  publishTime: string, // 发布时间

  creatorUser: UserInfoType,
  threeMembers: ProjectMemberType[]
}
